Most business organizations use computer systems to handle their sales and other activities. For this purpose, they typically create data objects in the computer system corresponding to physical entities such as a particular customer or a specific product. The organization may then in the computer system register a sale by making a certain association between a product object and a customer object. The data objects are sometimes referred to as master data in the computer system. The manipulation of master data may be a precursor for an activity outside the system, such as actually delivering the physical product to the customer. Accordingly, actions are taken in the computer system that correspond to, and typically precede, activities that are external to the system.
A system of this type typically takes rules into account when performing the actions. The rules specify in which of several alternative ways the action should be performed in the specific situation. For example, there may be shipping rules that the system applies to determine whether to ship the current product by express or standard delivery. Rules are typically implemented to ensure that the processing is efficient and consistent.
These systems are configured so that the applicable rules relate to specific master data, such as to the customer object or to the product object. That is, when a sale is registered, the shipment terms may be proposed from the customer master data. This means that there is a specific shipping rule associated with the customer master data that can propose a shipping method, such as “all deliveries to this customer are shipped by air.” It may happen, however, that shipping terms depend on the sold product. Some products cannot be shipped by air, for example. It has then been tried to have the product master data, not the customer master data, propose the shipment terms.
These approaches are associated with problems. Modeling a rule so that it relates to a specific instance of master data creates a static relationship. The rule may be taken into account whenever the particular object is present, which creates very little flexibility. There is also a problem if there is a rule that should be valid for several products, because it must then be set up for each of them. This results in redundant data in the computer system. Also, in the above example with the customer-based and product-based shipping rules, one attempted solution may be to create a new category of master data that depends from the combination of the customer object and the product object. However, this approach does not overcome the mentioned problems. While the rule now may take into account both the customer object and the product object, it provides no flexibility to depend from other circumstances, such as what day of the week the shipment is made. Also, the new master data category creates more redundant data in the system.